package com.xcl.mapper;

import com.zzg.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName WaybillMapper
 * @Description 运单管理数据访问层
 * @Author: xiaochaolei
 * @date 2021/6/21 14:43
 * @Version 1. 0
 */
@Mapper
public interface XclWaybillMapper {
    /**
     * 新增运单
     * @param waybill 运单信息
     * @return 影响行数
     */
    public int insertWaybill(Waybill waybill);

    /**
     * 查询托运单号
     * @param id 托运单号
     * @return 托运信息
     */
    public Waybill getWaybillById(String id);

    /**
     * 新增地区
     * @param tmsRegion 地区信息
     * @return 影响的行数
     */
    public int insertTmsRegion(TmsRegion tmsRegion);

    /**
     * 得到所有的分站信息
     * @return 分站集合
     */
    public List<Substation> getAllSubstation();

    /**
     * 新增发货人
     * @param consigner 发货人信息
     * @return 影响行数
     */
    public int insertConsigner(Consigner consigner);


    /**
     * 新增收货人信息
     * @param consignee 收货人信息
     * @return 影响行数
     */
    public int insertConsignee(Consignee consignee);


    /**
     * 新增货运信息
     * @param freightinformationTable 货运信息
     * @return 影响的行数
     */
    public int insertFreightinformation(@Param(value = "table") FreightinformationTable freightinformationTable);


    /**
     * 得到收货人的信息
     * @return 收货人集合
     */
    public List<Consignee> getAllConsigneeByClientname();

    /**
     * 得到收货人电话号码
     * @return 收货人集合
     */
    public List<Consignee> getAllConsigneeByForwardingUnit();



    /**
     * 根据id得到收货人信息
     * @param consigneeId 收货人id
     * @return 收货人信息
     */
    public Consignee getAllConsigneeByConsigneeId(String consigneeId);



    /**
     * 发货人的电话号码
     * @return 发货人集合
     */
    public List<Consigner> getAllConsignerByClientname();

    /**
     * 得到发货人发货单位
     * @return 发货人集合
     */
    public List<Consigner> getAllConsignerByForwardingUnit();


    /**
     * 根据id得到发货人信息
     * @param consignerId 发货人id
     * @return 发货人信息
     */
    public Consigner getAllConsignerByConsignerId(String consignerId);


    /**
     * 地区是否存在
     * @param area 地区信息
     * @return 是否存在
     */
    public TmsRegion isExistConsignerArea(String area);


    /**
     * 判断发货人是否存在
     * @param consigner 发货人信息
     * @return 发货人信息
     */
    public Consigner isExistConsigner(Consigner consigner);


    /**
     * 判断收货人是否存在
     * @param consignee 收货人信息
     * @return 收货人信息
     */
    public Consignee isExistConsignee(Consignee consignee);


    /**
     * 修改发货人信息
     * @param consigner 发货人信息
     * @return 影响行数
     */
    public int amendConsigner(Consigner consigner);


    /**e
     * 修改收货人信息
     * @param consignee 收货人信息
     * @return 影响行数
     */
    public int amendConsigne(Consignee consignee);


    /**
     * 新增运单状态
     * @param waybillstate 运单状态信息
     * @return 影响行数
     */
    public int insertWaybillState(Waybillstate waybillstate);
}
